草庐IT

SQL FOREIGN KEY 约束

全部标签

Mysql删除约束

我有一个结构如下的表格:CREATETABLE`Lm_help`(`id`int(10)NOTNULLAUTO_INCREMENT,`section`int(10)NOTNULL,`language`int(10)NOTNULL,`title`varchar(255)NOTNULL,`text`textNOTNULL,`timestamp`timestampNOTNULLDEFAULTCURRENT_TIMESTAMP,PRIMARYKEY(`id`),UNIQUEKEY`unique_help`(`section`,`language`),KEY`language_constrain

MySQL (InnoDB) : need to delete column, 和附带的外键约束和索引

这是我的表格:CREATETABLE`alums_alumphoto`(`id`int(11)NOTNULLauto_increment,`alum_id`int(11)NOTNULL,`photo_id`int(11)defaultNULL,`media_id`int(11)defaultNULL,`updated`datetimeNOTNULL,PRIMARYKEY(`id`),KEY`alums_alumphoto_alum_id`(`alum_id`),KEY`alums_alumphoto_photo_id`(`photo_id`),KEY`alums_alumphoto_m

受 TTL 约束的 MySQL 记录

是否有可能在MySQL数据库中创建一条记录,该记录受制于TTL(生存时间)选项。我想做一个简单的密码恢复功能,我需要存储一个激活key,它会在数据库中仅存储3600秒,然后在该时间后自动删除?我知道有很多其他方法可以实现这一点,但它们不像TTL功能的想法那么直接。我猜MySQL没有这样的功能,但我只是想也许我遗漏了什么,但确实有? 最佳答案 我刚刚发现MySQL5.1+有事件调度程序。MySQLEventScheduler管理事件的调度和执行-根据调度运行的任务。存储的例程需要MySQL数据库中的事件表。该表是在MySQL安装过程中

MySQL - 主键是否需要 "NOT NULL"约束?

MySQL数据库中的主键是否需要声明“NOTNULL”约束?主键不能有NULL值,因为它无论如何都会auto_increments并自动填充字段记录。那么我说这是否意味着我可以删除主键的“NOTNULL”约束是否正确? 最佳答案 (因为您已将问题标记为mysql。)在MySQL中,您不必显式地执行此操作。来自themanual:APRIMARYKEYisauniqueindexwhereallkeycolumnsmustbedefinedasNOTNULL.IftheyarenotexplicitlydeclaredasNOTNUL

mysql - 这张表的外键约束有什么问题?

MySQL5.1.59抛出这个创建表的错误:CREATETABLEIFNOTEXISTS`genre`(`id`INTUNSIGNEDNOTNULLAUTO_INCREMENT,`abv`CHAR(3)CHARACTERSET'latin1'COLLATE'latin1_bin'NULLDEFAULTNULL,`name`VARCHAR(80)NOTNULLDEFAULT'',`parent_id`INTNULLDEFAULTNULL,PRIMARYKEY(`id`),INDEX`fk_genre_genre1`(`parent_id`ASC),CONSTRAINT`fk_genre_

mysql - UNIQUE 约束,仅当字段包含特定值时

我正在尝试为两列创建UNIQUEINDEX约束,但前提是另一列包含值1。例如,column_1和column_2应该是UNIQUE仅当active=1时。任何包含active=0的行都可以与另一行共享column_1和column_2的值,而不管另一行的值是多少活跃的是。但是active=1的行不能与具有active=1的另一行共享column_1或column_2的值。我所说的“共享”是指在同一列中具有相同值的两行。示例:row1.a=row2.aANDrow1.b=row2.b。仅当第1行中的两列与第2行中的其他两列匹配时,才会共享值。我希望我说清楚了。:\

外键约束中的mysql循环依赖

给定架构:我需要的是让每个user_identities.belongs_to引用一个users.id。同时,每个用户都有一个primary_identity,如图所示。但是,当我尝试使用ONDELETENOACTIONONUPDATENOACTION添加此引用时,MySQL说#1452-Cannotaddorupdateachildrow:aforeignkeyconstraintfails(yap.#sql-a3b_1bf,CONSTRAINT#sql-a3b_1bf_ibfk_1FOREIGNKEY(belongs_to)REFERENCESusers(id)ONDELETENO

sql - 同一列可以对另一列有主键和外键约束吗

同一列是否可以对另一列有主键和外键约束?Table1:ID-Primarycolumn,foreignkeyconstraintforTable2IDTable2:ID-Primarycolumn,Name如果我尝试删除table1数据,这会成为问题吗?Deletefromtable1whereID=1000;谢谢。 最佳答案 将主键和外键分配给表中的同一列:createtablea1(id1intnotnullprimarykey);insertintoa1values(1),(2),(3),(4);createtablea2(i

具有软删除、唯一键和外键约束的 MySQL

假设我有两个表,user和comment。它们的表定义如下所示:CREATETABLE`user`(`id`INTEGERNOTNULLAUTO_INCREMENT,`username`VARCHAR(255)NOTNULL,`deleted`TINYINT(1)NOTNULLDEFAULT0,PRIMARYKEY(`id`),UNIQUEKEY(`username`))ENGINE=InnoDB;CREATETABLE`comment`(`id`INTEGERNOTNULLAUTO_INCREMENT,`user_id`INTEGERNOTNULL,`comment`TEXT,`de

mysql - 是否可以在 mySQL 5 中一次删除表上的所有外键约束?

在mySQL5中,有没有一种方法可以用一条SQL语句删除表上的所有外键约束,而无需按名称引用它们?我正在编写一个数据库更新脚本,但不幸的是,某些站点使用“错误”名称创建了约束。我试图避免进入并从数据库中获取实际的约束名称并将它们插入回SQL语句中。 最佳答案 我有一个类似于Bing的答案的解决方案,但它更进一步以实现自动化并可在过程中重复使用。DROPPROCEDUREIFEXISTSdropForeignKeysFromTable;delimiter///createproceduredropForeignKeysFromTabl